// 引入 express
const express = require('express')
// 引入 formidable 用于文件上传处理
const formidable = require('formidable')
// 引入 path
const path = require('path')
// 从 express 中调用 Router 创建路由
const router = express.Router()

// GET 请求，返回用于上传文件的表单结构
router.get('/', (req, res) => {
  res.send(`
    <h2>With <code>"express"</code> npm package</h2>
    <form action="/api/upload" enctype="multipart/form-data" method="post">
      <div>Text field title: <input type="text" name="title" /></div>
      <div>File: <input type="file" name="someExpressFiles" multiple="multiple" /></div>
      <input type="submit" value="Upload" />
    </form>
  `);
});

// POST 请求，用于服务端处理文件上传逻辑
router.post('/', (req, res, next) => {
  // 调用 formidable() 创建实例, 传递选项参数
  const form = formidable({
    uploadDir: path.join(__dirname, '../File'), // 上专文件存放的路径
    keepExtensions: true, // 是否保留扩展名（后缀名）
  })

  // 解析请求的数据
  // 会将请求中的文本数据(fields)与文件数据(files)均进行解析处理
  form.parse(req, (err, fields, files) => {
    if (err) {
      console.log('表单处理异常:', err)
      return;
    }
    res.json({ fields, files });
  });
});

module.exports = router
